# !/usr/bin/env python
# -*-coding:utf-8 -*-
"""
# File       : variable.py
# Time       ：2023/1/29 21:13
# Author     ：Y-aong
# version    ：python 3.7
# Description：
    变量模型类
    Variable model class
"""
from public.base_model import Base, db


class Variable(Base):
    """变量配置表"""
    __tablename__ = 'base_variable'

    process_id = db.Column(db.String(255), comment='流程ID')
    process_name = db.Column(db.String(50), comment='流程名称')
    # process_instance_id + variable_name确定唯一的变量
    variable_key = db.Column(db.String(255), comment='变量键')
    variable_value = db.Column(db.Text, default='', comment='变量值')
    variable_desc = db.Column(db.String(255), comment='变量描述信息')
    variable_type = db.Column(db.Enum('str', 'int', 'float', 'bool', 'None', 'list', 'dict'), comment='变量类型')
    # 当变量值为大数据时可以将变量值放在缓存数据库中，variable_value存放id
    is_cache = db.Column(db.Boolean, default=False, comment='是否缓存')


class VariableInstance(Base):
    """
    变量一旦创建不能修改变量名字只可以删除变量重新创建
    存入变量是在任务运行时进行进行存入
    解析变量是在任务运行时进行解析
    """
    __tablename__ = 'base_variable_instance'

    process_id = db.Column(db.String(255), comment='流程ID')
    process_instance_id = db.Column(db.String(255), comment='流程实例ID')
    process_name = db.Column(db.String(50), comment='流程名称')
    # variable relation
    variable_key = db.Column(db.String(50), comment='变量键')
    variable_value = db.Column(db.Text, comment='变量值')
    variable_desc = db.Column(db.String(255), comment='变量描述信息')
    variable_type = db.Column(db.Enum('str', 'int', 'float', 'bool', 'None', 'list', 'dict'), comment='变量类型')
    # 当变量值为大数据时可以将变量值放在缓存数据库中，variable_value存放id
    is_cache = db.Column(db.Boolean, default=False, comment='是否缓存')
